Use your own deliverables.
Hidemi Kawai wrote a very good article on the SecHack365 bulletin board, which I reprinted here with permission. -----
I've never dared to mention it in consideration of other courses and the SecHack365 way of doing things as a whole, but today I'm going to dare to write about it.
For now, I would like you to just think that there are people who think this way. This is not the absolute correct answer. In fact, there are probably more than one correct answer. So you can choose the one you like.
At SecHack365, I get all kinds of opinions from all kinds of people. That is something that is hard to get when you are just starting out, so it is very beneficial, but I dare say you know that a hundred times.
All development should be made only for oneself in the first place. If you make it for yourself, why do you need the opinions of others?
The often heard "I want everyone to use it" and "I want more downloads" are whispers of the devil. Don't listen to them.
When we develop something that purports to be for everyone, we usually end up with a half-baked product that neither meets our needs nor the needs of others.
It is just garbage (because no one will use it). Do not make such a thing.
So [first, you have to be thorough and meet your own needs. It has to be something that no one else in the world might use, but that you would definitely use and want to use. Rather, that is the kind of thing that someone else, much like you, will be happy to use.
If you are lucky, you will even get a very large number of people to use it.
To achieve perfection, I have to use my own artifacts anyway. I used to build my own OS. I tried to do as much as I could with that OS.
I am writing ES-BASIC right now, and I have written several programs for this language. Even yesterday I wrote a block breaker.
That's how it should be used anyway. If you don't use it, if you don't keep using it, you will never know what is good and what is bad.
I am not aware of my needs. So you should use it. If you can't bring yourself to use it, then figure out how to bring yourself to use it and implement that feature in a big hurry.
Otherwise, this minimal loop (use it yourself, and improve it based on that experience) will not start.
When I show my work to others, they often ask me where novelty (patentability) lies. But I can tell them that I don't know anything about that (laughs). Novelty or not, I use this. It doesn't have to have a single novelty, it just has to be useful to me.
If there are 100 novelties, but none of them are useful, what good are they? Who would use them? That's why we don't need novelty.
Leave the search for novelty to the researchers. I only need to be able to produce something really useful.
Of course, sometimes the pursuit of convenience to oneself in this way leads to results that no one else has yet achieved by chance.
In other words, they were not pursuing novelty, but they have acquired novelty. This is a convenient novelty.
Needless to say, the destructive power at that time is unusual.
(4) Then you can do it with the existing 00.
You may be vexed when you hear this. However, since we are not pursuing novelty, please consider that this is inevitable.
But if you rather be told these things, it is a sign that your needs are not too far off from the world's needs.
And no matter how many competitors there are, don't worry about that, you can continue to improve with your work.
You don't have to worry about people saying, "This is a degraded copy of 00.
Only such a person is a wretched person who can only make products that do not satisfy anyone's needs (i.e., that even he himself does not use).
And if we continue to use it and improve it, what if it should overtake us even a little bit?
Yes and no, it's a huge turnaround. 00 is the work that ends up with no novelty, and you are the leader of the pack.
So, I hope you will not mind if I say things like, "You can do it with existing ________," and go your own way.
As everyone grows more mature and becomes a professional programmer, developing for customers and getting paid for it, the above principles will have to be modified.
But until then, just follow the above principles and you will get better and better. You don't even need to study and catch up on the world's popular languages, programming paradigms, etc.
(I believe).
-----
relevance
---
This page is auto-translated from /nishio/自分の成果物を自分で使え using DeepL. If you looks something interesting but the auto-translated English is not good enough to understand it, feel free to let me know at @nishio_en. I'm very happy to spread my thought to non-Japanese readers.